<?php
require_once 'BaseController.php';

/**
 * Cookie操作
 *
 * @package apamanshop
 * @author suzuki-h@systemsoft.co.jp
 * @copyright コピーライト(要確認)
 */
class Rstdtl_OkiniiriinsertController extends Rstdtl_BaseController
{

// ※モバイル提供用APIと同じロジックであるため、仕様変更に伴う修正の際には
//   APIも修正する必要があります。(/mypage/controllers/OkiniiribukkenController.php)

	public function indexAction()
	{

		// モデル生成
		$this->_model_OkiniiriInsert = new Rstdtl_Model_Okiniiriinsert();
		$this->_model_dtlcookie      = new Rstdtl_Model_Dtlcookie();
		$result = "";

    	// パラメータ判定
    	if(!array_key_exists("heyaCd", $this->_params))
    	{
			$result = "部屋コードが設定されていません。";

   		// マイページログイン判定
    	}
    	else if($this->isLogin())
    	{

			// ユーザE-Mail
			$eMail = $this->getCurrentUserEid();

			// ユーザーID取得
			$this->_params["UserCd"] = $this->_model_OkiniiriInsert->getUserCd($eMail);

			// 登録物件重複判定
			$this->_data["duplicate"] = $this->_model_OkiniiriInsert->getDuplicate($this->_params);

			if(!$this->_data["duplicate"])
			{
				// 登録件数取得
				$bukenCnt = $this->_model_OkiniiriInsert->getCnt($this->_params);

				// 登録上限数判定
				if(Apm_Config_Mypage::CNT_MY_BUKKEN_MAX > $bukenCnt)
				{
					// 接続
					$db = $this->_model_OkiniiriInsert->getDbConnection();

					//トランザクション開始
					$this->_model_OkiniiriInsert->startTransaction($db);

					try
					{
						// お気に入り物件登録
						$this->_model_OkiniiriInsert->insertBuken($this->_params, $db);
					}
					catch (Exception $e)
					{
						//ロールバック
						$this->_model_OkiniiriInsert->rollbackTransaction($db);
						$result = "登録失敗しました";
						//DBのエラーメッセージをログに書き出す
						__log_debug(__FILE__, __LINE__, __METHOD__, $e->getMessage());
					}

					// コミット
					$this->_model_OkiniiriInsert->commitTransaction($db);

					//トランザクション終了
					$db->closeConnection();
					$result = "登録しました";
				}
				else
				{
					$result =  "上限";
				}
			}
			else
			{
				$result =  "この物件情報は既にお気に入りに登録されています";
			}
		}
		else
		{
			// Cookie登録
			$resultMsg = $this->_model_dtlcookie->SetCookie($this->_params["heyaCd"]
										,Apm_Config_Rstdtl::NAME_COOKIE_OKINIIRI
										,Apm_Config_Rstdtl::NAME_COOKIE_OKINIIRI_CNT
										,Apm_Config_Rstdtl::MAX_OKINIIRI_COOKIES);

			if($resultMsg == ""){
				$resultMsg = "登録しました";
			}
			$result = $resultMsg;
		}

		$this->_mode = "json";
		$this->_isMobile = "1";

		$this->_api_data = array('result' => $result);
		$this->display();

	}
}